package com.example.demo.util;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.example.demo.domain.ContractInfo;
import com.example.demo.domain.Product;

import cn.hutool.core.io.FileUtil;

/**
 * @author 朱永杰
 */
public class TestDemo {
    private static List<Product> initProducts() {
        List<Product> productList = new ArrayList<Product>(10);
        for (int i = 0; i < 10; i++) {
            productList
                .add(new Product(i + 1, "测" + i, "型" + i, i + 1, (i + 1 * 100.0), "备注" + i, (i + 1) * (i + 1 * 100.0)));
        }
        return productList;
    }

    private static ContractInfo initContractInfo() {
        ContractInfo contractInfo = new ContractInfo();
        /** 签订日期 */
        contractInfo.setSigningData(new Date());
        /** 合同编号 */
        contractInfo.setContractNo("123456");
        return contractInfo;
    }

    /**
     * 多列表组合填充填充
     *
     * @since 2.2.0-beta1
     */
    public static void main(String[] args) {
        // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
        // {} 代表普通变量 {.} 代表是list的变量 {前缀.} 前缀可以区分不同的list
        String templateFileName = FileUtil.getUserHomePath() + "/" + "SFF--Model-EXCEL.xlsx";
        String fileName = FileUtil.getUserHomePath() + "compositeFill" + System.currentTimeMillis() + ".xlsx";
        EasyExcelFillUtil easyFill = new EasyExcelFillUtil(templateFileName, fileName);
        easyFill.fill(initContractInfo());
        easyFill.fill(new FillWrapper("product", initProducts()));
        easyFill.fill(new FillWrapper("product", initProducts()), "报价单");
        easyFill.destroy();
    }
}
